package com.itheima;

/**
 * BaseContext
 *
 * @author liliudong
 * @version 1.0
 * @description 上下文
 * @date 2023/7/26 17:13
 */
public class BaseContext {
    /**
     * ThreadLocal 是 Java 中的一个类，提供了一种简单的方式来维护线程的局部变量。
     * 使用 ThreadLocal 可以实现每个线程独立地保存和获取变量的值，不会出现线程间的冲突。
     */
    //创建 ThreadLocal 对象
    private final static ThreadLocal<String> THREAD_LOCAL = new ThreadLocal<>();

    /**
     * 设置登录用户id
     *
     * @param userId 用户id
     */
    public static void setLoginUserId(String userId) {
        THREAD_LOCAL.set(userId);
    }

    /**
     * 获得登录用户id
     *
     * @return {@link String}
     */
    public static String getLoginUserId() {
        return THREAD_LOCAL.get();
    }

    /**
     * 删除登录用户id
     */
    public static void removeLoginUserId() {
        THREAD_LOCAL.remove();
    }

}
